package org.ourgrid.gridMonitor.operations;

import java.io.IOException;

import org.ourgrid.gridMonitor.Componente;
import org.ourgrid.gridMonitor.LocalComponentInformation;
import org.ourgrid.gridMonitor.TipoMonitorado;
import org.ourgrid.gridMonitor.TipoOperacao;
import org.ourgrid.gridMonitor.client.ClientSocket;


public class WorkerLocalOperation {
     public static void processRequest(String[] mensagem){
    	 if((mensagem != null) && (mensagem.length > 0)){
	        int operation = Integer.parseInt(mensagem[0]);
	        if(operation == TipoOperacao.COMPONENT_JOIN){
				 String hamsterPath = mensagem[1];
				 Componente.hamsterPath = hamsterPath;
			 } else if(operation == TipoOperacao.COMPONENT_CONNECTION_REFUSED){ //Se a conexão foi recusada
	        	 //O componente é considerado independente.
	         } else if (operation == TipoOperacao.NEW_JOB_ADDED){
	        	 String mensagemFormatada = TipoOperacao.NEW_JOB_ADDED+"#"+mensagem[5]+"#"+mensagem[6];
	         } 
    	 }
     }
     
     public static void connect(int tipoMonitorado, int portaComunicacao) throws IOException{
    	 String mensagem = TipoOperacao.COMPONENT_JOIN+Componente.separador+tipoMonitorado+Componente.separador+portaComunicacao+Componente.separador;
    	 mensagem = mensagem + LocalComponentInformation.servername+Componente.separador+LocalComponentInformation.login+Componente.separador+LocalComponentInformation.password;
      	 ClientSocket.mensagemConexao("127.0.0.1", LocalComponentInformation.INTERNAL_PORT, mensagem);
     }
     
     public static void saveWorkerInformation(){
     	//28#tipo#port#login#pass#servername
     	 String mensagem = TipoOperacao.UPDATE_COMPONENTE_INFORMATION+Componente.separador+TipoMonitorado.WORKER+Componente.separador+Componente.portaComunicacao+Componente.separador;
     	 mensagem = mensagem + LocalComponentInformation.login+Componente.separador+LocalComponentInformation.password+Componente.separador+LocalComponentInformation.servername;
       	 ClientSocket.mensagemConexao("127.0.0.1", LocalComponentInformation.INTERNAL_PORT, mensagem);
      }
}
